#!/usr/bin/env python3
"""
快速修复大视频分析问题
"""
import asyncio
from pathlib import Path
from app.services.large_video_analyzer import LargeVideoAnalyzer
from app.services.qwen_service import QwenVLService

# 临时修改超时时间
async def patch_qwen_service():
    """临时修改Qwen服务的超时时间"""
    qwen = QwenVLService()
    qwen.timeout = 10.0  # 设置为10秒超时
    return qwen

async def quick_test():
    """快速测试"""
    try:
        print("🚀 快速修复测试...")
        
        # 修改超时时间
        qwen = await patch_qwen_service()
        print(f"⏰ 设置Qwen超时时间为: {qwen.timeout}秒")
        
        # 测试连接
        try:
            connection_ok = await qwen.test_connection()
            print(f"🔗 Qwen连接测试: {'✅ 成功' if connection_ok else '❌ 失败'}")
        except Exception as e:
            print(f"🔗 Qwen连接测试: ❌ 超时/失败 ({e})")
            connection_ok = False
        
        if not connection_ok:
            print("💡 建议解决方案:")
            print("   1. 检查网络连接到 192.168.200.19:18009")
            print("   2. 确认Qwen服务是否正在运行")
            print("   3. 使用离线模式或备用服务")
            print("   4. 修改配置文件中的API地址")
            
            # 创建离线模式的分析结果
            print("\\n🛠️ 创建离线模式分析结果...")
            
            uploads_dir = Path("uploads")
            video_files = list(uploads_dir.glob("*.mp4"))
            
            if video_files:
                test_video = video_files[0]
                
                # 模拟分析结果
                offline_result = {
                    "success": True,
                    "result": {
                        "type": "offline_analysis",
                        "video_path": str(test_video),
                        "segment_count": 1,
                        "successful_segments": 1,
                        "total_duration": 330.0,
                        "split_method": "offline",
                        "overall_summary": f"离线模式分析结果\\n\\n视频文件: {test_video.name}\\n文件大小: {test_video.stat().st_size / (1024*1024):.1f}MB\\n\\n注意: 当前AI服务不可用，这是基础的文件信息。\\n请检查网络连接后重新分析以获得详细的AI分析结果。",
                        "segment_results": [{
                            "segment_index": 0,
                            "status": "offline",
                            "analysis_result": f"离线模式 - 无法进行AI分析\\n视频: {test_video.name}\\n建议: 修复网络连接后重试"
                        }],
                        "key_insights": {
                            "key_actions": ["网络连接问题"],
                            "important_moments": ["需要修复AI服务连接"],
                            "technical_details": ["Qwen服务连接超时"],
                            "main_topics": ["离线模式"],
                            "improvement_suggestions": ["检查网络配置", "确认服务状态"]
                        }
                    },
                    "message": "离线模式分析完成（AI服务不可用）",
                    "analysis_type": "offline"
                }
                
                print("✅ 离线分析结果已生成")
                print("📋 可以在前端显示基础信息")
                
                return offline_result
        
        return None
        
    except Exception as e:
        print(f"❌ 快速测试失败: {e}")
        return None

if __name__ == "__main__":
    result = asyncio.run(quick_test())
    if result:
        print("\\n📄 离线结果示例:")
        print(f"   类型: {result['result']['type']}")
        print(f"   摘要: {result['result']['overall_summary'][:100]}...")